package temps;

public class HorlogeWindows extends Horloge {
	public long frequence;
	public static boolean librairieDisponible;

	public HorlogeWindows() {
		frequence = getFrequence();
		marquerTemps();
	}

	@Override
	public long getTemps() {
		return getCompteur() / frequence;
	}

	@Override
	public int getUnite() {
		return UNITE_SECONDES;
	}

	@Override
	public void marquerTemps() {
		etiquetteTemps = getCompteur();
	}

	@Override
	public long getTempsEcoule() {
		return ((getCompteur() - etiquetteTemps) * UNITE_MILLISECONDES)
				/ frequence;
	}

	@Override
	public long getTempsEcoule(int unite) {
		return ((getCompteur() - etiquetteTemps) * unite) / frequence;
	}

	public static boolean estDisponible() {
		return librairieDisponible;
	}

	public native long getFrequence();

	public native long getCompteur();

	static {
		try {
			System.loadLibrary("temps_HorlogeWindows");
			librairieDisponible = true;
		} catch (Exception e) {
		}
	}

	static public void main(String[] args) {
		HorlogeWindows hn = new HorlogeWindows();
		try {
			Thread.sleep(1000);
		} catch (InterruptedException e) {
		}
		System.out.println(hn.getTempsEcoule());
	}
}
